/**
 * 
 */
package com.lanswon.qzsmk.base;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 卡常量
 * 
 * @author sun
 *
 */
public class CardContants {
	
	// =============================================================卡产品特性=======================================================================
	/**
	 * 普通
	 */
	public final static String CARD_PROPERTY_COMMON ="0";
	
	/**
	 * 特殊
	 */
	public final static String CARD_PROPERTY_SPECIAL ="1";
	
	// =============================================================卡产品状态=======================================================================
	/**
	 * 停用
	 */
	public final static String STATUS_DISABLE ="2";
	
	/**
	 * 启用
	 */
	public final static String STATUS_ENABLE ="1";
	
	
	// =============================================================个人申请采集单编号前缀=======================================================================
	/**
	 * 个人申请采集单编号前缀
	 */
	public final static String SINGLE_APPLY_COLLECTION_NO_PREFIX = "QZSMKXXCJD";

	// =============================================================联名卡业务类型=======================================================================
	/**
	 * 联名卡业务类型:1-联名卡挂失
	 */
	public final static String STANDARD_CARD_BUSSINESS_LOSS = "1";

	/**
	 * 联名卡业务类型:2-联名卡有卡注销
	 */
	public final static String STANDARD_CARD_BUSSINESS_HAS_CARD_CANCLE = "2";

	/**
	 * 联名卡业务类型:3-联名卡无卡注销
	 */
	public final static String STANDARD_CARD_BUSSINESS_NO_CARD_CANCLE = "3";
	
	/**
	 * 联名卡业务类型:4-联名卡解挂
	 */
	public final static String STANDARD_CARD_BUSSINESS_UNLOSS = "4";
	
	/**
	 * 联名卡业务类型:1-联名卡补卡
	 */
	public final static String STANDARD_CARD_BUSSINESS_SUP = "1";
	
	/**
	 * 联名卡业务类:2-联名卡换卡
	 */
	public final static String STANDARD_CARD_BUSSINESS_CHA = "2";
	// =============================================================制卡返回结果=======================================================================

	/**
	 * 制卡返回结果:0-成功
	 */
	public final static String MAKE_CARD_RESULT_SUCCESS = "0";

	/**
	 * 制卡返回结果:1-失败
	 */
	public final static String MAKE_CARD_RESULT_FAIL = "1";

	// =============================================================卡发行商=======================================================================
	/**
	 * 潍坊银行联名卡 11
	 */
	public final static String CARD_PUBLISHER_CODE_WF = "11";

	/**
	 * 建设银行联名卡 12
	 */
	public final static String CARD_PUBLISHER_CODE_JS = "12";
	// =============================================================制卡商=======================================================================
	/**
	 * 潍坊银行联名卡制卡商编号(东信)
	 */
	public final static String MAKECARD_COMPANY_NO_WF = "105";

	/**
	 * 建设银行联名卡制卡商编号(天磁)
	 */
	public final static String MAKECARD_COMPANY_NO_JS = "104";
	/**
	 * 市民卡制卡商编号(华冠)
	 */
	public final static String MAKECARD_COMPANY_NO_SMK = "100";
	// =============================================================联名卡卡产品代码=======================================================================
	/**
	 * 潍坊银行联名卡产品代码 15（数据要与数据库同步）
	 */
	public  static String CARD_P_CODE_WF = null;

	/**
	 * 建设银行联名卡产品代码 16
	 */
	public  static String CARD_P_CODE_JS = null;
	
	/**
	 * 普通卡卡产品代码（生成自主发卡卡号库用）
	 */
	public  static String CARD_P_CODE_80 = "80";
	/**
	 * 不记名卡产坪代码（生成自主发卡卡号库用）
	 */
	public  static String CARD_P_CODE_17 = "17";
	
	// =============================================================是否当场发卡=======================================================================
	/**
	 * 是否当场发卡:否
	 */
	public final static String SCENE_SEND_CARD_NO = "0";

	/**
	 * 是否当场发卡:是
	 */
	public final static String SCENE_SEND_CARD_IS = "1";

	// =============================================================凭证状态=======================================================================
	/**
	 * 凭证状态-失效
	 */
	public final static String CERT_STATUS_INVALID = "0";

	/**
	 * 凭证状态-有效
	 */
	public final static String CERT_STATUS_VALID = "1";

	// ==============================================================卡类型=======================================================================

	/**
	 * 卡类型-标准卡
	 */
	public final static String CARD_TYPE_STANDARD = "1";

	/**
	 * 卡类型-记名卡
	 */
	public final static String CARD_TYPE_REGISTERED = "2";

	/**
	 * 卡类型-不记名卡
	 */
	public final static String CARD_TYPE_ANONYMOUS = "3";

	// ==============================================================采集单附件类型=======================================================================

	/**
	 * 采集单附件类型-照片
	 */
	public final static String ENCLOSURE_PICTURE = "1";

	/**
	 * 采集单附件类型-pdf
	 */
	public final static String ENCLOSURE_PDF = "2";

	// ==============================================================黑名单标识=======================================================================
	/**
	 * 黑名单标识-正常
	 */
	public final static String BLACKLIST_FLAG_NORMAL = "1";

	/**
	 * 黑名单标识-拉黑
	 */
	public final static String BLACKLIST_FLAG_INNER = "2";

	// ==============================================================凭证类型=======================================================================
	/**
	 * 凭证类型-单笔申请
	 */
	public final static String SINGLE_APPLICATION = "1";

	/**
	 * 凭证类型-批量申请
	 */
	public final static String BATCH_APPLICATION = "2";

	/**
	 * 凭证类型-出库配送
	 */
	public final static String OUTGOING_DISTRIBUTION = "3";

	/**
	 * 凭证类型-单笔发卡
	 */
	public final static String SINGLE_CARD = "4";

	/**
	 * 凭证类型-批量发卡
	 */
	public final static String BATCH_CARD = "5";

	/**
	 * 凭证类型-正式挂失
	 */
	public final static String OFFICIAL_LOSS = "6";

	/**
	 * 凭证类型-退卡退款
	 */
	public final static String BACK_CARD_REFUND = "7";

	/**
	 * 凭证类型- 现场退卡退款
	 */
	public final static String SPOT_REFUND = "8";

	/**
	 * 凭证类型-退卡登记
	 */
	public final static String BACK_CARD_REGISTRATION = "9";

	/**
	 * 凭证类型-补换卡发卡
	 */
	public final static String CARD_ISSUING_CARD = "10";

	/**
	 * 凭证类型-补卡申请
	 */
	public final static String CARD_ISSUING_APPLY = "11";

	/**
	 * 凭证类型-换卡申请
	 */
	public final static String CARD_CHANGE_APPLY = "12";

	/**
	 * 凭证类型-口头挂失
	 */
	public final static String ORAL_LOSS = "13";

	/**
	 * 凭证类型-解挂
	 */
	public final static String CARD_UNBIND = "14";

	/**
	 * 凭证类型-退款-押金
	 */
	public final static String REFUND_REGISTRATION_DEPOSIT = "1501";
	
	/**
	 * 凭证类型-退款-本金
	 */
	public final static String REFUND_REGISTRATION_PRINCIPAL = "1502";
	
	/**
	 * 凭证类型-退款-（押金+本金）
	 */
	public final static String REFUND_REGISTRATION_MIX = "1503";

	/**
	 * 凭证类型-电子钱包充值
	 */
	public final static String ELECTRONIC_PURSE_RECHARGE = "1601";

	/**
	 * 凭证类型-电子存折充值
	 */
	public final static String Electronic_bankbook_recharge = "1602";
	
	/**
	 * 缴纳押金凭证
	 */
	public final static String DEPOSIT_VOUCHER = "1603";
	
	/**
	 * 自行车充值凭证
	 */
	public final static String BIKE_RECHARGE_VOUCHER = "1604";

	/**
	 * 自行车充值+押金凭证
	 */
	public final static String BIKE_MIX_VOUCHER = "1605";

	// ==============================================================卡产品是否有接触芯片=======================================================================
	/**
	 * 卡产品-有接触芯片
	 */
	public final static String CARD_HAS_CHIPS = "1";

	/**
	 * 卡产品-没有有接触芯片
	 */
	public final static String CARD_NO_HAS_CHIPS = "0";

	// ==============================================================卡产品是否有非接触芯片=======================================================================

	/**
	 * 卡产品-有非接触芯片
	 */
	public final static String CARD_HAS_CHIPS_LESS = "1";

	/**
	 * 卡产品-没有非接触芯片
	 */
	public final static String CARD_NO_HAS_CHIPS_LESS = "0";

	// ==============================================================卡产品是否有银行磁条=======================================================================
	/**
	 * 卡产品-有银行磁条
	 */
	public final static String CARD_HAS_BANK_STRIPE = "1";

	/**
	 * 卡产品-没有银行磁条
	 */
	public final static String CARD_NO_HAS_BANK_STRIPE = "0";

	// ==============================================================卡产品是否有条形码=======================================================================
	/**
	 * 卡产品-有条形码
	 */
	public final static String CARD_HAS_BARCODE = "1";

	/**
	 * 卡产品-没有条形码
	 */
	public final static String CARD_NO_HAS_BARCODE = "0";

	// ==============================================================卡产品是否有密码=======================================================================
	/**
	 * 卡产品-有密码
	 */
	public final static String CARD_HAS_PASSWORD = "1";

	/**
	 * 卡产品-没有密码
	 */
	public final static String CARD_NO_HAS_PASSWORD = "0";

	// ==============================================================制卡任务类型=======================================================================

	/**
	 * 制卡任务类型-记名卡
	 */
	public final static String TASK_TYPE_NAME_CARD = "1";

	/**
	 * 制卡任务类型-不记名卡
	 */
	public final static String TASK_TYPE_NO_NAME_CARD = "2";

	// ==============================================================制卡批次执行方式=======================================================================
	/**
	 * 执行方式-外包
	 */
	public final static String EXECUTION_MODE_OUTSOURCE = "1";

	/**
	 * 执行方式-本地
	 */
	public final static String EXECUTION_MODE_LOCAL = "2";

	// ==============================================================制卡合作商类型=======================================================================

	/**
	 * 合作商类型-制卡商
	 */
	public final static String COOPERATOR_CARD_FACTORY = "1";

	/**
	 * 合作商类型-银行
	 */
	public final static String COOPERATOR_BANK = "2";

	// ==============================================================制卡=======================================================================

	/**
	 * 1.任务生成
	 */
	public final static String TASK_GENERATION = "1";

	/**
	 * 2.交付银行
	 */
	public final static String DELIVERY_BANK = "2";

	/**
	 * 3银行返回
	 */
	public final static String BANK_RETURN = "3";

	/**
	 * 4.制卡中
	 */
	public final static String CARD_MAKING = "4";

	/**
	 * 5.已制卡
	 */
	public final static String ALREADY_MADE_CARD = "5";

	/**
	 * 6.部分制卡
	 */
	public final static String PARTIAL_CARD_MAKING = "6";

	/**
	 * 7.已导出制卡文件
	 */
	public final static String EXPORTED_CARD_FILE = "7";

	// ==============================================================卡损坏状况=======================================================================

	/**
	 * 未损坏
	 */
	public final static String CARD_UNDAMAGED = "0";

	/**
	 * 非人为损坏
	 */
	public final static String CARD_NON_HUMAN_DAMAGE = "1";

	/**
	 * 人为损坏
	 */
	public final static String CARD_HUMAN_DAMAGE = "2";

	// ==============================================================流水状态=======================================================================

	/**
	 * 流水状态 正常
	 */
	public final static String LSZT_NORMAL = "1";

	/**
	 * 流水状态 撤销
	 */
	public final static String LSZT_REVOKE = "2";

	/**
	 * 流水状态 冲正
	 */
	public final static String LSZT_CORRECT = "3";

	// ==============================================================照片类型=======================================================================

	/**
	 * 照片类型 .JPG
	 */
	public final static String FILE_TYPE_JPG = "1";

	/**
	 * 照片类型 .GIF
	 */
	public final static String FILE_TYPE_GIF = "2";

	/**
	 * 照片类型 .BMP
	 */
	public final static String FILE_TYPE_BMP = "3";

	/**
	 * 照片类型 .PNG
	 */
	public final static String FILE_TYPE_PNG = "4";
	
	/**
	 * 文件类型 .pdf
	 */
	public final static String FILE_TYPE_PDF = "5";

	// ==============================================================照片来源=======================================================================

	/**
	 * 现场拍照
	 */
	public final static String PHOTO_SOURCE_TAKE = "1";

	/**
	 * 照片来源身份证头像
	 */
	public final static String PHOTO_SOURCE_ID_CARD = "2";

	// ==============================================================卡是否可读=======================================================================
	/**
	 * 卡是否可读-可以
	 */
	public final static String CARD_IS_READ = "1";

	/**
	 * 卡是否可读-不可以
	 */
	public final static String CARD_NO_READ = "2";

	// ==============================================================数据来源=======================================================================
	/**
	 * 机具读身份证
	 */
	public final static String DATA_ORIGIN_READ_ID_CARD = "1";

	/**
	 * 手工录入
	 */
	public final static String DATA_ORIGIN_INPUT_BY_HAND = "2";
	
	/**
	 * 银行
	 */
	public final static String DATA_ORIGIN_INPUT_BY_BANK = "3";
	

	// ==============================================================申领类别=======================================================================

	/**
	 * 申领类别 首次申领
	 */
	public final static String APPLY_TYPE_FIRST = "1";

	/**
	 * 申领类别 再次申领
	 */
	public final static String APPLY_TYPE_SECOND = "2";

	/**
	 * 申领类别 补卡
	 */
	public final static String APPLY_TYPE_SUPPLEMENT = "3";

	/**
	 * 申领类别 换卡
	 */
	public final static String APPLY_TYPE_CHANGE = "4";

	/**
	 * 申领类别 其他
	 */
	public final static String APPLY_TYPE_OTHER = "9";

	// ==============================================================过程方式=======================================================================

	/**
	 * 过程方式 零星
	 */
	public final static String CLAIM_METHOD_SPORADIC = "1";

	/**
	 * 过程方式 单位规模
	 */
	public final static String CLAIM_METHOD_COMPANY = "2";

	/**
	 * 过程方式 社区规模
	 */
	public final static String CLAIM_METHOD_COMMUNITY = "3";

	/**
	 * 过程方式 网上规模
	 */
	public final static String CLAIM_METHOD_INTERNET = "4";

	/**
	 * 过程方式 其他规模
	 */
	public final static String CLAIM_METHOD_OTHER = "9";

	// ==============================================================卡状态=======================================================================

	/**
	 * 卡状态 未启用
	 */
	public final static String CARD_STATE_DISABLED = "0";

	/**
	 * 卡状态 正常
	 */
	public final static String CARD_STATE_NORMAL = "1";

	/**
	 * 卡状态 正式挂失
	 */
	public final static String CARD_STATE_OFFICIAL_LOSS = "2";

	/**
	 * 卡状态 口头挂失
	 */
	public final static String CARD_STATE_ORAL_LOSS = "3";
	
	/**
	 * 卡状态  无卡注销
	 */
	public final static String CARD_STATE_CANCELLATION_NO_CARD = "8";

	/**
	 * 卡状态  有卡注销
	 */
	public final static String CARD_STATE_CANCELLATION_HAS_CARD = "9";
	
	
	
	

	// ==============================================================卡位置=======================================================================

	/**
	 * 卡位置 未入库
	 */
	public final static String CARD_POSITION_NO_STORAGE = "0";

	/**
	 * 卡位置 中心库房
	 */
	public final static String CARD_POSITION_CENTRAL_STOREROOM = "1";

	/**
	 * 卡位置 网点
	 */
	public final static String CARD_POSITION_NET_DOT = "2";

	/**
	 * 卡位置 柜员
	 */
	public final static String CARD_POSITION_COUNTER_EMPLOYEE = "3";

	/**
	 * 卡位置 代理点
	 */
	public final static String CARD_POSITION_PROXY_POINT = "4";

	/**
	 * 卡位置 市民
	 */
	public final static String CARD_POSITION_CITIZEN = "5";

	/**
	 * 卡位置 制卡间
	 */
	public final static String CARD_MAKE_ROOM = "6";
	
	/**
	 * 卡位置 银行
	 */
	public final static String CARD_POSITION_BANK = "7";

	/**
	 * 卡位置 其他
	 */
	public final static String CARD_POSITION_OTHER = "9";

	// ==============================================================申领状态=======================================================================
	/**
	 * 申领状态:已申请状态
	 */
	public final static String CLAIM_STATUS_APPLY = "01";

	/**
	 * 申领状态:已给银行
	 */
	public final static String CLAIM_STATUS_BANK = "02";

	/**
	 * 申领状态:银行返回 写入时使用
	 */
	public final static String CLAIM_STATUS_BANKBACK = "03";

	/**
	 * 申领状态:制卡中 写入时使用
	 */
	public final static String CLAIM_STATUS_MAKING = "04";

	/**
	 * 申领状态:已制卡 写入时使用
	 */
	public final static String CLAIM_STATUS_MADE = "05";

	/**
	 * 申领状态:已入库 写入时使用
	 */
	public final static String CARD_APPLY_TATUS_STORE = "06";

	/**
	 * 申领状态:已配送 写入时使用
	 */
	public final static String CLAIM_STATUS_SENT = "07";

	/**
	 * 申领状态:待发放 待发放写入时使用
	 */
	public final static String CLAIM_STATUS_TOGIVE = "08";

	/**
	 * 申领状态:已发放 写入时使用
	 */
	public final static String CLAIM_STATUS_GIVEN = "09";

	/**
	 * 申领状态:已注销 写入时使用
	 */
	public final static String CLAIM_STATUS_CANCEL = "10";

	/**
	 * 申领状态:已退卡 状态写入时使用
	 */
	public final static String CLAIM_STATUS_BACK = "11";

	/**
	 * 申领状态:待制卡 状态写入时使用 --已经申请并生成制卡任务，但未导出制卡文件
	 */
	public final static String CLAIM_STATUS_CARD_PEND = "12";

	/**
	 * 申领状态:补卡已申请
	 */
	public final static String CLAIM_STATUS_SUPPLEMENTARY_CARD_APPLICATION = "13";

	/**
	 * 申领状态:换卡已申请
	 */
	public final static String CLAIM_STATUS_CHANGE_CARD_APPLICATION = "14";

	// ==============================================================卡片过程=======================================================================
	
	//20181205 hgl 增加以下4行
	/**
	 * 卡片过程-制卡入库
	 */
	public final static String CARD_PROC_INCOM = "301";
	/**
	 * 卡片过程-配送出库
	 */
	public final static String CARD_PROC_DIST = "302";

	/**
	 * 卡片过程-网点接收
	 */
	public final static String CARD_PROC_RECV = "303";
	
	/**
	 * 20181213 hgl 
	 * 卡片过程-柜员领用
	 */
	public final static String CARD_PROC_REVBYEMP = "304";
	
	
	/**
	 * 卡片过程-市民申请领用
	 * 20181213 hgl 修改以下1行
	 */
	public final static String CARD_PROC_RETRIEVE = "305";
	
	/**
	 * 卡片过程-柜员归还网点库管
	 * 20181213 hgl 修改以下1行
	 */
	public final static String CARD_PROC_RTNBYEMP = "306";
	
	/**
	 * 卡片过程-出入库撤销
	 * 
	 */
	//20181213 hgl 修改以下1行
	public final static String CARD_PROC_CANCEL = "307";

	/**
	 * 20181213 hgl 修改以下1行
	 * 卡片过程-网点上缴配送出库
	 */
	public final static String CARD_PROC_HANDED = "308";
	
	/**
	 * 20181213 hgl 修改以下1行
	 * 卡片过程-接收上缴入库
	 */
	public final static String CARD_PROC_HANDEDREV = "309";
	
	/**
	 * 20181213 hgl 修改以下1行
	 * 卡片过程-出库
	 */
	public final static String CARD_PROC_OUT_STORAGE = "310";
	
	/**
	 * 卡片过程-盘盈入库
	 */
	public final static String CARD_PROC_SURPLUSINCOM = "311";

	/**
	 * 卡片过程-作废
	 */
	public final static String CARD_PROC_WASTE_STORAGE = "702";
	/**
	 * 卡片过程-待还原
	 */
	public final static String CARD_PROC_RESTORE_STORAGE = "705";

	// ==============================================================是否加急=======================================================================

	/**
	 * 是否加急-是
	 */
	public final static String IS_URGENT_YES = "Y";

	/**
	 * 是否加急-否
	 */
	public final static String IS_URGENT_NO = "N";

	// ==============================================================性别=======================================================================

	/**
	 * 性别-男
	 */
	public final static String GENDER_MALE = "01";

	/**
	 * 性别-女
	 */
	public final static String GENDER_FEMALE = "02";

	/**
	 * 性别-其他
	 */
	public final static String GENDER_OTHER = "03";

	public static String getBankBussinessTypeName(String code) {
		String name = "";
		switch (code) {
		case "1":
			name = "联名卡挂失";
			break;
		case "2":
			name = "联名卡有卡注销";
			break;
		case "3":
			name = "联名卡无卡注销";
			break;
		case "4":
			name = "联名卡解挂";
			break;
		case "5":
			name = "联名卡补卡";
			break;
		case "6":
			name = "联名卡换卡";
			break;

		default:
			name = "无";
			break;
		}
		return name;
	}

	/**
	 * 根据过程代码获得过程名称
	 * 
	 * @param sCardProcCode
	 *            过程代码
	 * @return 过程名称
	 */
	public static String getCardProcNameByCode(String sCardProcCode) {
		String cardProcName = "";
		switch (sCardProcCode) {
		
		//20181205 hgl 增加以下3行
		case CARD_PROC_INCOM:
			cardProcName = "制卡入库";
			break;
		case CARD_PROC_DIST:
			cardProcName = "配送";
			break;
		case CARD_PROC_CANCEL:
			cardProcName = "出入库撤销";
			break;

		case CARD_PROC_OUT_STORAGE:
			cardProcName = "出库";
			break;
		case CARD_PROC_RECV:
			//20181205 hgl 修改以下1行
			cardProcName = "网点接收";
			break;
		case CARD_PROC_RESTORE_STORAGE:
			cardProcName = "待还原  ";
			break;
			//20181213 hgl 修改以下1行
		case CARD_PROC_REVBYEMP:
			cardProcName = "柜员领用 ";
			break;
			//20181213 hgl 修改以下1行
		case CARD_PROC_RETRIEVE:
			cardProcName = "市民申请领用";
			break;
			//20181213 hgl 修改以下1行
		case CARD_PROC_RTNBYEMP:
			cardProcName = "柜员归还网点库管";
			break;
		case CARD_PROC_HANDED:
			cardProcName = "网点上缴配送出库 ";
			break;
		case CARD_PROC_HANDEDREV:
			cardProcName = "上缴卡片接收入库 ";
			break;
		case CARD_PROC_SURPLUSINCOM:
			cardProcName = "盘盈入库 ";
			break;
		case CARD_PROC_WASTE_STORAGE:
			cardProcName = "作废";
			break;
		default:
			cardProcName = "无过程";
		}
		return cardProcName;
	}

	/**
	 * 根据图片后缀获取图片类型
	 * 
	 * @param photoSuffix
	 * @return
	 */
	public static final String getFileTypeCodeByFileSuffix(String photoSuffix) {
		String code = "";
		switch (photoSuffix.toLowerCase()) {
		case ".jpg":
			code = FILE_TYPE_JPG;
			break;
		case ".gif":
			code = FILE_TYPE_GIF;
			break;
		case ".bmp":
			code = FILE_TYPE_BMP;
			break;
		case ".png":
			code = FILE_TYPE_PNG;
			break;
		case ".pdf":
			code = FILE_TYPE_PDF;
			break;
		default:
			code = "0";
			break;
		}
		return code;
	}

	/**
	 * 根据卡状态码获取对应的中文名称
	 * 
	 * @param code
	 * @return
	 */
	public static final String getCardStatusNameByCode(String code) {
		String name = "";
		switch (code) {
		case "0":
			name = "未启用";
			break;
		case "1":
			name = "正常";
			break;
		case "2":
			name = "正式挂失";
			break;
		case "3":
			name = "口头挂失";
			break;
		case "9":
			name = "有卡注销";
			break;
		case "8":
			name = "无卡注销";
			break;
		default:
			name = "暂无状态";
			break;
		}
		return name;

	}

	/**
	 * 根据申领类别码获取对应的中文名称
	 * 
	 * @param code
	 * @return
	 */
	public static String getApplyTypeNameByCode(String code) {
		String name = "";
		switch (code) {
		case "1":
			name = "首次申领";
			break;
		case "2":
			name = "再次申领";
			break;
		case "3":
			name = "补卡";
			break;
		case "4":
			name = "换卡";
			break;
		case "9":
			name = "其他";
			break;
		default:
			name = "无申领类别";
			break;

		}

		return name;
	}

	/**
	 * 根据申领状态码获取对应的中文名称
	 * 
	 * @param code
	 * @return
	 */
	public static String getClaimStatusNameByCode(String code) {
		String name = "";
		switch (code) {
		case "01":
			name = "已申请";
			break;
		case "02":
			name = "已发送银行";
			break;
		case "03":
			name = "银行返回";
			break;
		case "04":
			name = "制卡中";
			break;
		case "05":
			name = "已制卡";
			break;
		case "06":
			name = "已入库";
			break;
		case "07":
			name = "已配送";
			break;
		case "08":
			name = "待发放";
			break;
		case "09":
			name = "已发放 ";
			break;
		case "10":
			name = "已注销";
			break;
		case "11":
			name = "已退卡";
			break;
		case "12":
			name = "待制卡";
			break;
		case "13":
			name = "补卡已申请";
			break;
		case "14":
			name = "换卡已申请";
			break;
		case "99":
			name = "废卡上缴配送中";
			break;
		case "98":
			name = "废卡已回收";
			break;
		case "97":
			name = "白卡上缴配送中";
			break;
		case "96":
			name = "白卡已上缴";
			break;
		default:
			name = "无申领状态";
			break;
		}
		return name;
	}

	public static String getCertTypeNameByCode(String code) {
		String name = "";
		switch (code) {
		case "1":
			name = "单笔申请";
			break;
		case "2":
			name = "批量申请";
			break;
		case "3":
			name = "出库配送";
			break;
		case "4":
			name = "单笔发卡";
			break;
		case "5":
			name = "批量发卡";
			break;
		case "6":
			name = "正式挂失";
			break;
		case "7":
			name = "退卡退款";
			break;
		case "8":
			name = "现场退卡退款";
			break;
		case "9":
			name = "退卡登记";
			break;
		case "10":
			name = "补卡发卡";
			break;
		case "11":
			name = "补卡申请";
			break;
		case "12":
			name = "换卡申请";
			break;
		case "13":
			name = "口头挂失";
			break;
		case "14":
			name = "解挂";
			break;
		case "15":
			name = "退款登记";
			break;
		case "1501":
			name = "联名卡退卡退款";
			break;
		case "1601":
			name = "电子钱包充值";
			break;

		case "1602":
			name = "电子存折充值";
			break;

		default:
			name = "无业务类型";
			break;
		}
		return name;
	}

	/**
	 * 根据卡位置代码获取对应的中文名称
	 * 
	 * @param code
	 * @return
	 */
	public static String getCardPositionNameByCode(String code) {
		String name = "";
		switch (code) {
		case "0":
			name = "未入库";
			break;
		case "1":
			name = "中心库房";
			break;
		case "2":
			name = "网点";
			break;
		case "3":
			name = "柜员";
			break;
		case "4":
			name = "代理点";
			break;
		case "5":
			name = "市民";
			break;
		case "6":
			name = "制卡间";
			break;
		case "7":
			name = "银行";
			break;
		case "9":
			name = "其他";
			break;
		default:
			name = "无相关位置";
			break;
		}
		return name;
	}

	/**
	 * 根据任务状态代码获取对应的中文名称
	 * 
	 * @param code
	 * @return
	 */
	public static String getTaskStatusNameByCode(String code) {
		String name = "";
		switch (code) {
		case "1":
			name = "任务生成";
			break;
		case "2":
			name = "交付银行";
			break;
		case "3":
			name = "银行返回";
			break;
		case "4":
			name = "制卡中";
			break;
		case "5":
			name = "已经制卡";
			break;
		case "6":
			name = "部分制卡";
			break;
		case "7":
			name = "已导出制卡文件";
			break;
		default:
			name = "无相关状态";
			break;
		}
		return name;
	}

	/**
	 * 根据任务类型代码获取对应的中文名称
	 * 
	 * @param code
	 * @return
	 */
	public static String getTaskTypeNameByCode(String code) {
		String name = "";
		switch (code) {
		case "1":
			name = "记名卡任务";
			break;
		case "2":
			name = "不记名卡任务";
			break;
		default:
			name = "无相关任务";
			break;
		}
		return name;
	}

	/**
	 * 获取所有卡位置的代码和名称
	 * 
	 * @return
	 */
	public static Map<String, Object> getCardPositions() {
		Map<String, Object> map = new HashMap<>();
		List<String> codes = new ArrayList<>();
		codes.add("0");
		codes.add("1");
		codes.add("2");
		codes.add("3");
		codes.add("4");
		codes.add("5");
		codes.add("6");
		codes.add("7");
		codes.add("9");
		List<String> names = new ArrayList<>();
		names.add("未入库");
		names.add("中心库房");
		names.add("网点");
		names.add("柜员");
		names.add("代理点");
		names.add("市民");
		names.add("制卡间");
		names.add("银行");
		names.add("其他");
		map.put("codes", codes);
		map.put("names", names);
		return map;
	}

	/**
	 * 获取所有卡状态的代码和名称
	 * 
	 * @return
	 */
	public static Map<String, Object> getCardStatuses() {
		Map<String, Object> map = new HashMap<>();
		List<String> codes = new ArrayList<>();
		codes.add("0");
		codes.add("1");
		codes.add("2");
		codes.add("3");
		codes.add("8");
		codes.add("9");
		List<String> names = new ArrayList<>();
		names.add("未启用");
		names.add("正常");
		names.add("正式挂失");
		names.add("口头挂失");
		names.add("无卡注销");
		names.add("有卡注销");
		map.put("codes", codes);
		map.put("names", names);
		return map;
	}

	public static void main(String[] args) {
		String f = getFileTypeCodeByFileSuffix(".JPG");
		System.out.println(f);
	}

	// ==============================================================城市代码=======================================================================

	/**
	 * 城市代码
	 */
	public static final String CITY_CODE = "2625";

}
